Text Extraction এর পরে NLP Techniques (Tokenization, Named Entity Recognition) গাইড ও নোট

Java Technologies - অ্যাপাচি টিকা (Apache Tika) - Apache Tika এবং NLP (Natural Language Processing) Integration
407

Apache Tika ডকুমেন্ট থেকে টেক্সট এক্সট্রাকশন (Text Extraction) করার পর প্রক্রিয়া করা টেক্সটের উপর বিভিন্ন NLP টেকনিক (Natural Language Processing Techniques) প্রয়োগ করা যায়। এর মধ্যে বিশেষভাবে গুরুত্বপূর্ণ দুটি টেকনিক হলো:

  1. টোকেনাইজেশন (Tokenization)
  2. নেইমড এনটিটি রিকগনিশন (NER - Named Entity Recognition)

১. টেক্সট এক্সট্রাকশন

প্রথমে Apache Tika ব্যবহার করে ফাইল থেকে টেক্সট বের করা হয়। নিচে একটি উদাহরণ দেওয়া হলো:

উদাহরণ: টেক্সট এক্সট্রাকশন

import org.apache.tika.Tika;
import java.io.File;

public class TikaTextExtraction {
    public static void main(String[] args) throws Exception {
        // Tika ইনস্ট্যান্স তৈরি
        Tika tika = new Tika();
        
        // ফাইল থেকে টেক্সট এক্সট্রাকশন
        String content = tika.parseToString(new File("example.pdf"));
        
        // টেক্সট প্রিন্ট করা
        System.out.println("Extracted Content: ");
        System.out.println(content);
    }
}

Output:

Extracted Content:  
This is a sample document about Apache Tika and NLP techniques.  
John Doe works at XYZ Corporation in New York City.  

২. টোকেনাইজেশন (Tokenization)

টোকেনাইজেশন হলো একটি টেক্সটকে ছোট ছোট অংশ বা টোকেন (Tokens) এ ভাগ করা। প্রতিটি শব্দ, সংখ্যা বা চিহ্নকে একটি টোকেন হিসেবে গণ্য করা হয়।

উদাহরণ: টোকেনাইজেশন Java ব্যবহার করে

import java.util.StringTokenizer;

public class TokenizationExample {
    public static void main(String[] args) {
        String text = "John Doe works at XYZ Corporation in New York City.";
        
        // StringTokenizer দিয়ে টোকেনাইজেশন
        StringTokenizer tokenizer = new StringTokenizer(text);
        
        System.out.println("Tokens: ");
        while (tokenizer.hasMoreTokens()) {
            System.out.println(tokenizer.nextToken());
        }
    }
}

Output:

Tokens:  
John  
Doe  
works  
at  
XYZ  
Corporation  
in  
New  
York  
City  

৩. নেইমড এনটিটি রিকগনিশন (NER)

Named Entity Recognition (NER) একটি NLP টেকনিক, যা টেক্সটের মধ্যে থাকা নাম, স্থান, প্রতিষ্ঠান, ইত্যাদি নেইমড এনটিটি সনাক্ত করে।

NER প্রয়োগ করার জন্য Apache OpenNLP বা Stanford NLP লাইব্রেরি ব্যবহার করা যেতে পারে।

উদাহরণ: OpenNLP ব্যবহার করে NER

প্রথমে OpenNLP লাইব্রেরি ডিপেন্ডেন্সি যুক্ত করতে হবে:

<dependency>
    <groupId>org.apache.opennlp</groupId>
    <artifactId>opennlp-tools</artifactId>
    <version>1.9.4</version>
</dependency>

NER কোড উদাহরণ

import opennlp.tools.namefind.NameFinderME;
import opennlp.tools.namefind.TokenNameFinderModel;
import opennlp.tools.util.Span;
import opennlp.tools.tokenize.SimpleTokenizer;

import java.io.FileInputStream;

public class NamedEntityRecognitionExample {
    public static void main(String[] args) throws Exception {
        String text = "John Doe works at XYZ Corporation in New York City.";
        
        // টোকেনাইজেশন
        SimpleTokenizer tokenizer = SimpleTokenizer.INSTANCE;
        String[] tokens = tokenizer.tokenize(text);

        // NER মডেল লোড করা
        TokenNameFinderModel model = new TokenNameFinderModel(
                new FileInputStream("en-ner-person.bin"));
        NameFinderME nameFinder = new NameFinderME(model);

        // NER সনাক্তকরণ
        Span[] spans = nameFinder.find(tokens);
        
        System.out.println("Named Entities: ");
        for (Span span : spans) {
            System.out.println("Entity: " + tokens[span.getStart()] + " " + tokens[span.getStart() + 1]);
        }
    }
}

Output:

Named Entities:  
Entity: John Doe

সারাংশ

  • Apache Tika দিয়ে ডকুমেন্ট থেকে টেক্সট এক্সট্রাক্ট করার পর সেই টেক্সটের উপর বিভিন্ন NLP টেকনিক প্রয়োগ করা যায়।
  • টোকেনাইজেশন শব্দগুলোকে আলাদা করে টোকেন তৈরি করে।
  • Named Entity Recognition (NER) টেক্সট থেকে নাম, স্থান এবং প্রতিষ্ঠান সনাক্ত করতে সাহায্য করে।

এটি ডকুমেন্ট প্রসেসিং এবং ডেটা বিশ্লেষণকে আরও কার্যকর ও প্রায়োগিক করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...